layui.use('layim', function() {
    var layim = layui.layim;
    var autoReplay = [
        '您好，我现在有事不在，一会再和您联系。',
        '你没发错吧？face[微笑] ',
        '洗澡中，请勿打扰，偷窥请购票，个体四十，团体八折，订票电话：一般人我不告诉他！face[哈哈] ',
        '你好，我是主人的美女秘书，有什么事就跟我说吧，等他回来我会转告他的。face[心] face[心] face[心] ',
        'face[威武] face[威武] face[威武] face[威武] ',
        '<（@￣︶￣@）>',
        '你要和我说话？你真的要和我说话？你确定自己想说吗？你一定非说不可吗？那你说吧，这是自动回复。',
        'face[黑线]  你慢慢说，别急……',
        '(*^__^*) face[嘻嘻] ，是贤心吗？'
    ];
    layim.config({
        init: {
            url: '/layui/lay/modules/layim/getList.json' //接口地址（返回的数据格式见下文）
            ,type: 'get' //默认get，一般可不填
            ,data: {} //额外参数
        },
        //查看群员接口
        members: {
            url: '/layim/json/getMembers.json'
            ,data: {}
        },
        uploadImage: {
            url: '' //（返回的数据格式见下文）
            ,type: '' //默认post
        },
        uploadFile: {
            url: '' //（返回的数据格式见下文）
            ,type: '' //默认post
        },
        brief: false, //是否简约模式（如果true则不显示主面板）
        title: '聊天窗口',
        isAudio: true,
        isVideo: true,
        initSkin: '3.jpg',
        //扩展工具栏
        tool: [{
            alias: 'code'
            ,title: '代码'
            ,icon: '&#xe64e;'
        }],
        msgbox: '/layim/demo/msgbox.html', //消息盒子页面地址，若不开启，剔除该项即可
        find: '/layim/demo/find.html', //发现页面地址，若不开启，剔除该项即可
        chatLog: '/layim/demo/chatlog.html' //聊天记录页面地址，若不开启，剔除该项即可
    });
    layim.chat({
        name: '张三' //名称
        ,type: 'friend' //聊天类型
        ,avatar: 'http://tp1.sinaimg.cn/5619439268/180/40030060651/1' //头像
        ,id: 11111 //好友id
    });
    //监听发送消息
    layim.on('sendMessage', function(data){
        var To = data.to;
        //console.log(data);

        if(To.type === 'friend'){
            layim.setChatStatus('<span style="color:#FF5722;">对方正在输入。。。</span>');
        }

        //演示自动回复
        setTimeout(function(){
            var obj = {};
            if(To.type === 'group'){
                obj = {
                    username: '模拟群员'+(Math.random()*100|0)
                    ,avatar: layui.cache.dir + 'images/face/'+ (Math.random()*72|0) + '.gif'
                    ,id: To.id
                    ,type: To.type
                    ,content: autoReplay[Math.random()*9|0]
                }
            } else {
                obj = {
                    username: To.name
                    ,avatar: To.avatar
                    ,id: To.id
                    ,type: To.type
                    ,content: autoReplay[Math.random()*9|0]
                }
                layim.setChatStatus('<span style="color:#FF5722;">在线</span>');
            }
            layim.getMessage(obj);
        }, 1000);
    });
    //监听自定义工具栏点击，以添加代码为例
    layim.on('tool(code)', function(insert){
        layer.prompt({
            title: '插入代码 - 工具栏扩展示例'
            ,formType: 2
            ,shade: 0
        }, function(text, index){
            layer.close(index);
            insert('[pre class=layui-code]' + text + '[/pre]'); //将内容插入到编辑器
        });
    });

    //监听layim建立就绪
    layim.on('ready', function(res){
        //console.log(res.mine);
        layim.msgbox(5); //模拟消息盒子有新消息，实际使用时，一般是动态获得
    });

    //面板外的操作
    var $ = layui.jquery, active = {
        chat: function(){
            //自定义会话
            layim.chat({
                name: '小闲'
                ,type: 'friend'
                ,avatar: '//tva3.sinaimg.cn/crop.0.0.180.180.180/7f5f6861jw1e8qgp5bmzyj2050050aa8.jpg'
                ,id: 1008612
            });
            layer.msg('也就是说，此人可以不在好友面板里');
        }
        ,message: function(){
            //制造好友消息
            layim.getMessage({
                username: "贤心"
                ,avatar: "//tp1.sinaimg.cn/1571889140/180/40030060651/1"
                ,id: "100001"
                ,type: "friend"
                ,content: "嗨，你好！欢迎体验LayIM。演示标记："+ new Date().getTime()
                ,timestamp: new Date().getTime()
            });
        }
        ,messageAudio: function(){
            //接受音频消息
            layim.getMessage({
                username: "林心如"
                ,avatar: "//tp3.sinaimg.cn/1223762662/180/5741707953/0"
                ,id: "76543"
                ,type: "friend"
                ,content: "audio[http://gddx.sc.chinaz.com/Files/DownLoad/sound1/201510/6473.mp3]"
                ,timestamp: new Date().getTime()
            });
        }
        ,messageVideo: function(){
            //接受视频消息
            layim.getMessage({
                username: "林心如"
                ,avatar: "//tp3.sinaimg.cn/1223762662/180/5741707953/0"
                ,id: "76543"
                ,type: "friend"
                ,content: "video[http://www.w3school.com.cn//i/movie.ogg]"
                ,timestamp: new Date().getTime()
            });
        }
        ,messageTemp: function(){
            //接受临时会话消息
            layim.getMessage({
                username: "小酱"
                ,avatar: "//tva1.sinaimg.cn/crop.7.0.736.736.50/bd986d61jw8f5x8bqtp00j20ku0kgabx.jpg"
                ,id: "198909151014"
                ,type: "friend"
                ,content: "临时："+ new Date().getTime()
            });
        }
        ,add: function(){
            //实际使用时数据由动态获得
            layim.add({
                type: 'friend'
                ,username: '麻花疼'
                ,avatar: '//tva1.sinaimg.cn/crop.0.0.720.720.180/005JKVuPjw8ers4osyzhaj30k00k075e.jpg'
                ,submit: function(group, remark, index){
                    layer.msg('好友申请已发送，请等待对方确认', {
                        icon: 1
                        ,shade: 0.5
                    }, function(){
                        layer.close(index);
                    });

                    //通知对方
                    /*
                    $.post('/im-applyFriend/', {
                      uid: info.uid
                      ,from_group: group
                      ,remark: remark
                    }, function(res){
                      if(res.status != 0){
                        return layer.msg(res.msg);
                      }
                      layer.msg('好友申请已发送，请等待对方确认', {
                        icon: 1
                        ,shade: 0.5
                      }, function(){
                        layer.close(index);
                      });
                    });
                    */
                }
            });
        }
        ,addqun: function(){
            layim.add({
                type: 'group'
                ,username: 'LayIM会员群'
                ,avatar: '//tva2.sinaimg.cn/crop.0.0.180.180.50/6ddfa27bjw1e8qgp5bmzyj2050050aa8.jpg'
                ,submit: function(group, remark, index){
                    layer.msg('申请已发送，请等待管理员确认', {
                        icon: 1
                        ,shade: 0.5
                    }, function(){
                        layer.close(index);
                    });

                    //通知对方
                    /*
                    $.post('/im-applyGroup/', {
                      uid: info.uid
                      ,from_group: group
                      ,remark: remark
                    }, function(res){

                    });
                    */
                }
            });
        }
        ,addFriend: function(){
            var user = {
                type: 'friend'
                ,id: 1234560
                ,username: '李彦宏' //好友昵称，若申请加群，参数为：groupname
                ,avatar: '//tva4.sinaimg.cn/crop.0.0.996.996.180/8b2b4e23jw8f14vkwwrmjj20ro0rpjsq.jpg' //头像
                ,sign: '全球最大的中文搜索引擎'
            }
            layim.setFriendGroup({
                type: user.type
                ,username: user.username
                ,avatar: user.avatar
                ,group: layim.cache().friend //获取好友列表数据
                ,submit: function(group, index){
                    //一般在此执行Ajax和WS，以通知对方已经同意申请
                    //……

                    //同意后，将好友追加到主面板
                    layim.addList({
                        type: user.type
                        ,username: user.username
                        ,avatar: user.avatar
                        ,groupid: group //所在的分组id
                        ,id: user.id //好友ID
                        ,sign: user.sign //好友签名
                    });

                    layer.close(index);
                }
            });
        }
        ,addGroup: function(){
            layer.msg('已成功把[Angular开发]添加到群组里', {
                icon: 1
            });
            //增加一个群组
            layim.addList({
                type: 'group'
                ,avatar: "//tva3.sinaimg.cn/crop.64.106.361.361.50/7181dbb3jw8evfbtem8edj20ci0dpq3a.jpg"
                ,groupname: 'Angular开发'
                ,id: "12333333"
                ,members: 0
            });
        }
        ,removeFriend: function(){
            layer.msg('已成功删除[凤姐]', {
                icon: 1
            });
            //删除一个好友
            layim.removeList({
                id: 121286
                ,type: 'friend'
            });
        }
        ,removeGroup: function(){
            layer.msg('已成功删除[前端群]', {
                icon: 1
            });
            //删除一个群组
            layim.removeList({
                id: 101
                ,type: 'group'
            });
        }
        //置灰离线好友
        ,setGray: function(){
            layim.setFriendStatus(168168, 'offline');

            layer.msg('已成功将好友[马小云]置灰', {
                icon: 1
            });
        }
        //取消好友置灰
        ,unGray: function(){
            layim.setFriendStatus(168168, 'online');

            layer.msg('成功取消好友[马小云]置灰状态', {
                icon: 1
            });
        }
        //移动端版本
        ,mobile: function(){
            var device = layui.device();
            var mobileHome = '/layim/demo/mobile.html';
            if(device.android || device.ios){
                return location.href = mobileHome;
            }
            var index = layer.open({
                type: 2
                ,title: '移动版演示 （或手机扫右侧二维码预览）'
                ,content: mobileHome
                ,area: ['375px', '667px']
                ,shadeClose: true
                ,shade: 0.8
                ,end: function(){
                    layer.close(index + 2);
                }
            });
            layer.photos({
                photos: {
                    "data": [{
                        "src": "http://cdn.layui.com/upload/2016_12/168_1481056358469_50288.png",
                    }]
                }
                ,anim: 0
                ,shade: false
                ,success: function(layero){
                    layero.css('margin-left', '350px');
                }
            });
        }
    };
});